People are increasingly utilizing portable computing devices that have a wide variety of capabilities. In many cases, these devices can communicate over various wireless channels, and include a wide variety of input mechanisms. Unfortunately, many portable computing and electronic devices include very small-scale keyboards on which it can be difficult for users to type with speed and accuracy. To help users overcome the difficulty of using such keyboards, some devices include software to analyze user input as the user types and predict the user's intended final input. Some devices simply replace the user's input with the predicted input. Other devices may present a selection of suggestions as the user types and allow the user to decide whether to accept one of the suggestions. However, such software may result in user frustration if the software does not learn from historical user input and improve the predictions and/or suggestions.